package org.javahispano.javacup.tacticas_aceptadas.FGR.javacup2009.gallegux.javacup2009.canelaenrama;


import org.javahispano.javacup.modelo.Constantes;
import org.javahispano.javacup.modelo.Posicion;



public class CTE 
{


	public static final int NUM_JUGADORES = 11;
	
	// constantes del campo
	public static final double MITAD_LARGO_CAMPO = Constantes.LARGO_CAMPO_JUEGO / 2.0;
	public static final double MITAD_ANCHO_CAMPO = Constantes.ANCHO_CAMPO_JUEGO / 2.0;
	public static final double DIST_AJUSTE_POR_POSTE = 1.45;
	public static final double POS_X_PORTERO_POSTE_IZQ = Constantes.posteIzqArcoInf.getX() + DIST_AJUSTE_POR_POSTE;
	public static final double POS_X_PORTERO_POSTE_DER = Constantes.posteDerArcoInf.getX() - DIST_AJUSTE_POR_POSTE;
	public static final double MITAD_LARGUERO = Constantes.LARGO_ARCO / 2;
	public static final double DIST_ABS_POSTE_INTERIOR = CTE.MITAD_LARGUERO - Constantes.RADIO_BALON;
	public static final double DIST_ABS_POSTE_EXTERIOR = CTE.MITAD_LARGUERO + Constantes.RADIO_BALON;
	public static final double DIST_3_4_CAMPO = MITAD_LARGO_CAMPO / 2; // distancia de 3/4 de campo
	public static final Posicion PTO_CENTRO_MI_PORTERIA = new Posicion(0,-MITAD_LARGO_CAMPO);
	public static final Posicion PTO_CENTRO_PORTERIA_RIVAL = new Posicion(0,MITAD_LARGO_CAMPO);
	public static final Posicion PTO_CENTRO_PORTERIA_RIVAL_LIMBO = new Posicion(0, MITAD_LARGO_CAMPO + DIST_3_4_CAMPO);

	// constantes de la tactica
	public static final double DIST_MARCAJE = 0.9;
	public static final double DIST_TAPAR_SAQUE = 1.49;
	public static final double ANG_DESVIACION_TRAYECTORIA = 0.0000000000001;
	public static final double ANG_DIST_37 = 24.0;
	public static final double ANG_MEJOR_ANGULO_TIRO_RASO = 18.9;
	public static final double DIST_ACHIQUE = 60.0; 
	public static final int ITERACIONES = 3600; 
	public static final double AJUSTE_DIST_CONTROL_BALON = 0.02;
	public static final double POS_X_ABS_SAQUE_PUERTA = Constantes.LARGO_AREA_CHICA / 2;
	public static final double POS_Y_SAQUE_PUERTA = 
		MITAD_LARGO_CAMPO - Constantes.ANCHO_AREA_CHICA - DIST_TAPAR_SAQUE;
	public static final double LINEA_MARCAJE = -2;
	public static final double DIST_APOYO = 25;
	public static final double DIST_BALON_CASI_PARADO = 0.25;
	/* distancia a la que tienen que estar los defensas del balon cuando 
	 * el balon est� en campo contrario y atacamos
	 * 
	 */
	
	public static final double[] DIST_BALON_AVANZAR = new double[] {
		0.8, 1.54, 2.24, 2.88, 3.48, 4.03, 4.55, 5.03, 5.48, 5.9, 6.28
	};
	public static final double DIST_AVANCE_SEGURO = DIST_BALON_AVANZAR[DIST_BALON_AVANZAR.length - 1];
	
	public static final double ANG_DISPARO_MIN = Math.toRadians(25);
	public static final double ANG_DISPARO_MAX = Math.toRadians(180-25);
	public static final double MARGEN_PASE_ATRAS = 6;
	public static final double MARGEN_MAX_PASE_ATRAS = 12;
	
	public static final double DIST_PORTERO_LINEA_GOL = 1.40; // distancia del portero a la linea de gol
	public static final double POS_Y_POR_LINEA_GOL = - MITAD_LARGO_CAMPO + DIST_PORTERO_LINEA_GOL;
	public static final Posicion POS_REPOSO_PORTERO = new Posicion(0, - MITAD_LARGO_CAMPO + DIST_PORTERO_LINEA_GOL * 2);
	public static final Posicion PTO_LINEA_POR_IZQ = new Posicion(-30.0, POS_Y_POR_LINEA_GOL);
	public static final Posicion PTO_LINEA_POR_DER = new Posicion(30.0, POS_Y_POR_LINEA_GOL);
	public static final Posicion POS_POR_IZQ = new Posicion(POS_X_PORTERO_POSTE_IZQ, POS_Y_POR_LINEA_GOL);
	public static final Posicion POS_POR_DER = new Posicion(POS_X_PORTERO_POSTE_DER, POS_Y_POR_LINEA_GOL);
	
	
	public static final double ANG_1 =  Math.toRadians(1);
	public static final double ANG_45 =  Math.toRadians(45);
	public static final double ANG_90 =  Math.toRadians(90);
	public static final double ANG_80 =  Math.toRadians(90);
	public static final double ANG_135 = Math.toRadians(135);
	public static final double ANG_180 = Math.toRadians(180);
	public static final double ANG_225 = Math.toRadians(225);
	public static final double ANG_270 = Math.toRadians(270);
	public static final double ANG_315 = Math.toRadians(315);
	public static final double ANG_360 = 2 * Math.PI;
	
}
